/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p/>
 * Compile: JDK 1.6+
 * <p/>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p/>
 * 公司名称：江苏欧索软件有限公司
 * <p/>
 * 公司地址：中国苏州科技城青山路1号
 * <p/>
 * 网址: http://www.oceansoft.com.cn
 * <p/>
 * 版本: 苏州公安统一用户管理平台1.0
 * <p/>
 * 作者: 090922(陈伟)
 * <p/>
 * 文件名:SysInitListener.java
 * <p/>
 * 类产生时间: 2012-7-19 下午6:03:08
 * <p/>
 * 负责人: 090922(陈伟)
 * <p/>
 * Email:javacspring@gmail.com
 * <p/>
 * 所在组 : 苏州公安统一用户管理平台
 * <p/>
 * 所在部门: 电信/国土——技术二部
 * <p/>
 * <p/>
 */
package com.oceansoft.mobile.common.util;

import com.oceansoft.mobile.common.dao.CommonDaoImpl;
import com.oceansoft.mobile.common.dao.ICommonDao;
import com.oceansoft.mobile.weixin.entity.WxToken;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.io.Serializable;
import java.util.List;

/**
 * 系统配置项加载监听
 *
 * @author chenw
 *
 */
public class SysInitListener implements ServletContextListener {
    ServletContext ctx;

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        this.ctx = null;
    }

    @Override
    public void contextInitialized(ServletContextEvent event) {
        System.out.println(">>>>>>>>>>>>>>>>系统配置初始化开始.....");
        ctx = event.getServletContext();
        WebApplicationContext springCtx = WebApplicationContextUtils
                .getWebApplicationContext(event.getServletContext());
        RedisTemplate<Serializable, Object> simple = (RedisTemplate<Serializable, Object>) springCtx.getBean(RedisTemplate.class);
        System.out.println(simple);
        CommonUtilCache.putItem("simple", simple);
        CommonUtilCache.putItem("ctx", ctx);

        ICommonDao commonDao = (ICommonDao) springCtx.getBean(CommonDaoImpl.class);
        List<WxToken> list = commonDao.loadList("select * from wx_token ", WxToken.getFullMapp());
        for (WxToken token : list) {
            CommonUtilCache.putItem("wxTokenMap:" + token.getMer_id(), token);
            CommonUtilCache.putItem("wxTokenOpenidMap:" + token.getOpenid(), token);
        }

        System.out.println(">>>>>>>>>>>>>>>>系统配置初始化成功!");
    }
}
